#include <stdio.h>

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90}; // 待排序的数组
    int length = sizeof(arr) / sizeof(arr[0]); // 计算数组长度

    // 打印原始数组
    printf("原始数组：\n");
    for (int i = 0; i < length; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    // 插入排序
    for (int i = 1; i < length; i++) {
        int key = arr[i]; // 选择当前元素作为插入的元素
        int j; // 声明j变量，用于遍历已排序部分

        for (j = i - 1; j >= 0; j--) {
            if (arr[j] > key) { // 如果当前元素大于key
                arr[j + 1] = arr[j]; // 移动元素到右边
            } 
            else 
            {
                break; // 找到插入位置，退出循环
            }
        }
        arr[j + 1] = key; // 插入key到合适位置
    }

    // 打印排序后的数组
    printf("\n排序后的数组：\n");
    for (int i = 0; i < length; i++) {
        printf("%d ", arr[i]); // 打印排序后的数组元素
    }
    printf("\n");

    return 0; // 返回0，表示程序成功结束
}
